<p>While it is technically correct to use a <code>Thread</code> where a <code>Runnable</code> is called for, the semantics of the two objects are
different, and mixing them is a bad practice that will likely lead to headaches in the future.</p>
<p>The crux of the issue is that <code>Thread</code> is a larger concept than <code>Runnable</code>. A <code>Runnable</code> is an object whose
running should be managed. A <code>Thread</code> expects to manage the running of itself or other <code>Runnables</code>. </p>
<h2>Noncompliant Code Example</h2>
<pre>
	public static void main(String[] args) {
		Thread r =new Thread() {
			int p;
			@Override
			public void run() {
				while(true)
					System.out.println("a");
			}
		};
		new Thread(r).start();  // Noncompliant
</pre>
<h2>Compliant Solution</h2>
<pre>
	public static void main(String[] args) {
		Runnable r =new Runnable() {
			int p;
			@Override
			public void run() {
				while(true)
					System.out.println("a");
			}
		};
		new Thread(r).start();
</pre>

